﻿/***************************************************************
 * 开发人员：网魂小兵@http://www.mozlite.com
 * 
 * 目标标本：4.0.30319.239
 * 
 * 最后修改：2011/11/13 16:04:19
 * ************************************************************/
namespace Mozlite.FileStorages
{
    using System;
    using System.Linq;
    using System.Text;
    using System.Collections.Generic;

    /// <summary>
    /// 文件存储扩展方法。
    /// </summary>
    public static class FileStorageExtensions
    {
        /// <summary>
        /// 判断名称是否重名。
        /// </summary>
        /// <param name="parent">父文件夹。</param>
        /// <param name="name">名称（文件名或文件夹名）。</param>
        /// <returns>返回是否重名。</returns>
        public static bool IsNameValided(this UserFolder parent, string name)
        {
            if (parent == null)
                parent = new UserFolder();
            if (parent.Children == null || parent.Children.Count == 0)
                return true;
            foreach (var folder in parent.Children)
            {
                if (folder.FolderName.IsMatched(name))
                    return false;
            }
            if (parent.Files == null || parent.Files.Count == 0)
                return true;
            foreach (var file in parent.Files)
            {
                if (file.FullName.IsMatched(name))
                    return false;
            }
            return true;
        }
    }
}